/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.myproject.ordendigital.dao.hibernate;

import com.myproject.ordendigital.dao.EstadoDao;
import com.myproject.ordendigital.model.Estado;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Component;

/**
 *
 * @author U900532
 */
@Component
public class EstadoDaoHibernate extends HibernateDaoSupport
        implements EstadoDao {

    @Autowired
    public EstadoDaoHibernate(SessionFactory sessionFactory) {
        setSessionFactory(sessionFactory);
    }

    @Override
    public List<Estado> obtenerListaEstado(Estado estado) {
        StringBuffer query = new StringBuffer("from Estado p where 1 = 1");
        if (estado.getDescripcion() != null
                && !estado.getDescripcion().isEmpty()) {
            query.append(" where upper(descripcion) like '%").append(estado.getDescripcion().toUpperCase()).append("%'");
        }
        List<Estado> list = getHibernateTemplate().find(query.toString());
        return list;
    }

    @Override
    public Estado obtenerEstadoById(Integer idEstado) {
        Estado estado = getHibernateTemplate().get(Estado.class, idEstado);
        return estado;
    }

    @Override
    public void guardarEstado(Estado estado) {
        getHibernateTemplate().saveOrUpdate(estado);
    }

    @Override
    public void eliminarEstado(Integer idEstado) {
        Estado estado = obtenerEstadoById(idEstado);
        getHibernateTemplate().delete(estado);
    }
}
